<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Usuario_model extends MY_Model {

    var $field_login = "usu_email";
    public $rol_propietario = 4;

    function __construct() {
        parent::__construct();
        $this->_table = 'usuario';
        $this->primary_key = 'usu_id';
    }
    
    public function getUsuario($datos = null){
        if(isset($datos['usu_id'])){$this->db->where('usu_id', $datos['usu_id']);}
        $this->db->join('blog', 'blog.blo_fk_usuario = usuario.usu_id', 'left');
        if(isset($datos['paginas']) && isset($datos['index'])){
            $this->db->limit($datos['paginas'], ($datos['index']*$datos['paginas']));
        }
        $query = $this->db->get('usuario');
        $array = array();
        $cont = 0;
        foreach($query->result_array() as $row){
            $array[$cont] = $row;
            $array[$cont]['d_mensajes_foro'] = $this->_get_mensajes_foro($row['usu_id']);
            $cont++;
        }
        return $array;
    }
    
    public function setUsuario($datos = null){
        $info = array();
        $info['usu_email'] = $this->input->post('usu_email');
        if($datos['origen'] == 'admin'){
            $info['usu_fk_rol'] = $this->input->post('usu_fk_rol');
            //si quiere que le enviemos una nueva contrasenya
            if($this->input->post('usu_reenviar_pass') == 'S'){
                
            }
            $this->db->where('usu_id', $this->input->post('usu_id'));
            $this->db->update('usuario', $info);
        }else if($datos['origen'] == 'perfil'){
            $info['usu_nick'] = $datos['datos']['usu_nick'];
            $info['usu_desc'] = $datos['datos']['usu_desc'];
            if($datos['datos']['usu_pass'] != null){$info['usu_pass'] = md5($datos['datos']['usu_pass']);}
            if($datos['ruta_avatar'] != null){$info['usu_avatar'] = $datos['ruta_avatar'];}
            $info['usu_slug'] = $this->general->_set_slug(slug($datos['datos']['usu_nick']));
            $this->db->where('usu_id', $this->session->userdata('usu_id'));
            $this->db->update('usuario', $info);
        }
        return $this->db->_error_message();
    }
    
    public function deleteUsuario($idusuario){
        $this->db->where('usu_id', $idusuario);
        $query = $this->db->get('usuario');
        if($query->num_rows() > 0){
            $this->db->delete('usuario', array('usu_id' => $idusuario));

            //si no quedan usuarios borramos la empresa
            $this->db->where('emp_fk_usuario', $idusuario);
            $query_emp = $this->db->get('empresa');
            foreach($query_emp->result_array() as $emp){
                //buscamos sus productos para borrarlos también
                $this->db->where('pro_fk_empresa', $emp['uem_fk_empresa']);
                $query_pro = $this->db->get('producto');
                foreach($query_pro->result_array() as $prod){
                    $this->db->delete('prod_descripcion', array('prd_fk_producto' => $prod['pro_id']));
                    $this->db->delete('prod_foto', array('prf_fk_producto' => $prod['pro_id']));
                    $this->db->delete('prod_visitas', array('vis_fk_producto' => $prod['pro_id']));
                    $this->db->delete('prod_det_producto', array('prp_fk_producto' => $prod['pro_id']));
                }
                $this->db->delete('producto', array('pro_fk_empresa' => $emp['uem_fk_empresa']));
                $this->db->delete('emp_cat_empresa', array('ece_fk_empresa' => $emp['uem_fk_empresa']));
                $this->db->delete('empresa', array('emp_id' => $emp['uem_fk_empresa']));
            }
        }
    }
    
    function getRoles(){
        return $this->db->get('rol')->result_array();
    }
    
    function login($user = null, $pass = null){
        if($user == null || $pass == null){
            return false;
        }
        $this->db->where($this->field_login, $user);
        $this->db->where('usu_pass', md5($pass));
        $query = $this->db->get('usuario');
        if($query->num_rows() == 0){
            return false;
        }else{
            $query = $query->row_array();
            $array = array();
            $array['usu_ultimo_login'] = date('Y-m-d H:i:s');
            $this->db->where('usu_id', $query['usu_id']);
            $this->db->update('usuario', $array);
            return $query;
        }
    }
    
    function registro($datos){
        //insertamos la empresa
        //$this->db->insert('empresa', array('emp_desc' => 'inserte_empresa'));
        //$id_empresa = $this->db->insert_id();

        //ahora el usuario
        $datos['usu_feccre'] = date('Y-m-d H:i:s');
        $datos['usu_codigo_activacion'] = $id_empresa.uniqid();
        $this->db->insert('usuario', $datos);

        $id_usuario = $this->db->insert_id();

        //y finalmente recogemos los datos del usuario creado y los devolvemos
        $this->db->where('usu_id', $this->db->insert_id());
        $query = $this->db->get('usuario');
        return $query->row_array();
    }
    
    
    //*****private methods
    
    private function _get_mensajes_foro($idusuario){
        return null;
    }
    

    public function validacion_id($idavalidar = null) {
        if($this->session->userdata('usu_fk_rol') < 3 || $idavalidar == null){
            return true;
        }else{
            $this->db->where_in('uem_fk_empresa', get_empresas_string());
            $this->db->where('uem_fk_usuario', $idavalidar);
            $query = $this->db->get('usu_empresa');
            return $query->num_rows() > 0 ? true : false;
        }
    }
}

/* End of file MY_Model.php */
/* Location: ./core/MY_Model.php */